{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# Learning a Formula of Interpretability to Learn Interpreable Formulas\n",
    "This notebook loads the survey answers, generates a regression datasets, and learns a linear model out of it.\n",
    "\n",
    "We begin with some imports and setup."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sklearn\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import math\n",
    "import seaborn as sns\n",
    "from sympy import sympify, latex, nan\n",
    "import re\n",
    "\n",
    "matplotlib.rcParams.update({'font.size': 14})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "Next we load the answers and related data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "results = pd.read_csv(\"results_335.csv\", sep='\\t')\n",
    "# There is one answer for which no background information was recorded. We discard it.\n",
    "results = results[results['info_freq']!='undefined']\n",
    "sim1000 = pd.read_csv(\"sim1000-copy\", sep='\\t').drop(columns=['Unnamed: 0'])\n",
    "dec1000 = pd.read_csv(\"dec1000-copy\", sep='\\t').drop(columns=['Unnamed: 0'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# Information on user expertise\n",
    "We now display information on user expertise."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "info = {}\n",
    "for user in results['hash'].unique():\n",
    "    row = results[results['hash']==user]\n",
    "    info[user] = [row.info_freq.unique()[0], row.info_long.unique()[0], row.info_complex.unique()[0], row.info_deal_complex.unique()[0]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9evRokULAEBMTAxeeeUVKJVKtG/fHhMnTkTXrl1hamqK0NBQREZGon79+nBycsLYsWORkZFRal9//vknvL29oVQqMXnyZGzatAnW1taVOj0WFhbYuXMn9uzZAycnJ0ycOBFr165Fs2bNKqX95s2bY/r06Wjfvj1cXV1x8eJFdOzYUXq9W7du8Pb2Rq1ateDk5FRs/FdeeQULFizAm2++CTc3N8TFxemdN0FExoE3AiIiIpIh7gEgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIikiEGACIiIhliACAiIpIhBgAiIiIZYgAgIiKSIQYAIiIiGWIAICIi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YGBgqf/B77nnHjVjxgyllFL33Xefmjt3rjp79qxq1aqVevbZZ9WCBQvUqVOnrAf58jRu3Fjt2bNHffzxx+rhhx9W0dHR6siRI2rx4sVq8ODBSimlPvnkE9WzZ89Syz3yyCPqlVdeUUpVvAD48MMPVdeuXa2PLRaLatSokfVLsU+fPurdd9+1Tj969KhycHAo9SV6RUpKivLw8FBZWVlKKaWGDRumZs+erZRSaubMmWrEiBHWec1mswoKClKbNm1SSlWuAOjdu7dasGCB9fEPP/xg/WI/d+6ccnJyUvn5+dbpH330kYqPjy93XV988YWKioqyPr5WAVDR97MiBcBDDz1kffzNN9+osLCwcrf56quvqqFDh5Z53mQyKUdHR2vBp5RSCxcuVHFxcdbttmjRwjrtwIEDClDnzp2zPufr62stJsaMGVOqCMnJyVF6vV6dPn1aKfXn+2OxWJSbm5s6ceKEdd6ff/5ZhYaGWh8nJiaqevXqqdatW6tXX3213P26Ml/JA/KyZctUdHR0qXm6deumlixZopQqfl1feumlUtPj4uLUrFmzrI+nTJmibr31Vuvjr7/+WrVv377c7V1Z/lrvVUk+Pj4qISFBKaVUbGysevnll1V6enq5886ePVu1atVKnT179qrrE7WfXAKo47788ksuXbpk/ffee+9Zp6WmphIcHIxe/+fHICQkhJSUFADi4uLYvHkzW7dupVevXsTHx7Nlyxa2bNlCbGxsqeVKKrlcXFxcqeXi4uIASE5O5tdff8XHx8f6b+XKlZw7d65S+3dlH67Q6XSlHqemphISElJq/0wmE+fPny+zrqCgIGJiYvjss8+4dOkS3333HaNHjy53PXq9nuDgYOtrdTOZS643OTkZo9FIw4YNra/Lo48+SlpaGlB83fmee+6hUaNGeHl5cd9995GRkVGh7d7o+1meBg0aWP92c3MjNze33Pn++OMPmjdvXub5jIwMjEZjmfem5OsZGBho/dvV1bXc50put+Rr6uHhga+vb5nr1+np6eTn59OpUyfr63vrrbeSnp5unSc0NJTevXuTlJTEE088cfUX4S/++hkpb59KZrzafl5rHytjzpw5tGnTBm9vb3x8fMjKyrJ+Vj744AOOHTtG69atiY6OZt26daWWffvtt1m0aFGp91nUPVIA2LGgoCD++OOPUp2RTp8+TaNGjYDi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\n",
      "text/plain": [
       "<Figure size 1440x1440 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(20,20))\n",
    "fig.suptitle('Users Information')\n",
    "fig.patch.set_facecolor('xkcd:white')\n",
    "\n",
    "freq = np.zeros(3)\n",
    "for user in info:\n",
    "    if int(info[user][0]) == 1:\n",
    "        freq[0] += 1\n",
    "    elif int(info[user][0]) == 2:\n",
    "        freq[1] += 1\n",
    "    else:\n",
    "        freq[2] += 1\n",
    "        \n",
    "labels = ['Rarely (less than weekly)', 'Occasionally (weekly)', 'Frequently (almost daily)']\n",
    "ax1 = plt.subplot2grid((4,1),(0,0))\n",
    "plt.pie(freq, labels=labels, autopct='%1.1f%%')\n",
    "plt.title('How frequently do you deal with mathematical expressions in your work or study?')\n",
    "    \n",
    "\n",
    "long = np.zeros(4)\n",
    "for user in info:\n",
    "    if int(info[user][1]) == 1:\n",
    "        long[0] += 1\n",
    "    elif int(info[user][1]) == 2:\n",
    "        long[1] += 1\n",
    "    elif int(info[user][1]) == 3:\n",
    "        long[2] += 1\n",
    "    else:\n",
    "        long[3] += 1\n",
    "\n",
    "labels = ['For a few month or less', 'For a year or less','Between one and three years', 'For more than three years']\n",
    "ax1 = plt.subplot2grid((4,1),(1,0))\n",
    "plt.pie(long, labels=labels, autopct='%1.1f%%')\n",
    "plt.title('How long have you been working and/or studying in a math related field?') \n",
    "\n",
    "complexity = np.zeros(3)\n",
    "for user in info:\n",
    "    if int(info[user][2]) == 1:\n",
    "        complexity[0] += 1\n",
    "    elif int(info[user][2]) == 2:\n",
    "        complexity[1] += 1\n",
    "    else:\n",
    "        complexity[2] += 1\n",
    "\n",
    "labels = ['Rather simple', 'Moderately complex', 'Fairly complex']\n",
    "ax1 = plt.subplot2grid((4,1),(2,0))\n",
    "plt.pie(complexity, labels=labels, autopct='%1.1f%%')\n",
    "plt.title('What is the complexity of the formulas you usually deal with?')\n",
    "\n",
    "dealing = np.zeros(3)\n",
    "for user in info:\n",
    "    if int(info[user][3]) == 1:\n",
    "        dealing[0] += 1\n",
    "    elif int(info[user][3]) == 2:\n",
    "        dealing[1] += 1\n",
    "    else:\n",
    "        dealing[2] += 1\n",
    "\n",
    "labels = ['I happen to find most \\nformulas hard to deal with','I can deal with simple formulas,\\n but struggle with complex ones','I proficiently deal with rather complex formulas']\n",
    "ax1 = plt.subplot2grid((4,1),(3,0))\n",
    "plt.pie(dealing, labels=labels, autopct='%1.1f%%')\n",
    "plt.title('How well do you deal with complex formulas?')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# Features Extraction\n",
    "We now drop unnecessary info, and extract salient data on simulatability and decomposability."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "questions = results.drop(columns = ['hash', 'info_freq', 'info_long', 'info_complex', 'info_deal_complex'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "Formula feature exctraction methods:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_formula(row):\n",
    "    \"\"\" Retrieves the formula corresponding to the question by means of its id \"\"\"\n",
    "    expr = sim1000[sim1000['id'] == row.id].expr.tolist()[0]\n",
    "    expr = sympify(expr)\n",
    "    return expr\n",
    "\n",
    "def count_vars(formula):\n",
    "    \"\"\" Counts the number of variables in the formula, counting repetitions \"\"\"\n",
    "    n_vars = str(formula).count('x')\n",
    "    return n_vars\n",
    "    \n",
    "def count_dim(formula):\n",
    "    \"\"\" Counts the number of different variables in the formula \"\"\"\n",
    "    n_dim = sum([sim in str(formula) for sim in ['x_1','x_2', 'x_3', 'x_4']])\n",
    "    if n_dim > 0:\n",
    "        return n_dim\n",
    "    else:\n",
    "        return 1\n",
    "    \n",
    "def count_consts(expr, consts = None):\n",
    "    \"\"\" Counts the number of constants in the formula \"\"\"\n",
    "    if consts is None:\n",
    "        consts = 0\n",
    "    if expr.is_number:\n",
    "        if expr != -1  and expr != 0.5:\n",
    "            consts +=1\n",
    "        return consts\n",
    "    else:\n",
    "        for arg in expr.args:\n",
    "            consts = count_consts(arg, consts)\n",
    "        return consts\n",
    "\n",
    "def count_ops(formula):\n",
    "    \"\"\" Counts the number of operations in the formula \"\"\"\n",
    "    formula = str(formula).replace('**','^')\n",
    "    ops = 0\n",
    "    for sim in  ['+', '-', '*', '/', '^', 'sin', 'cos']:\n",
    "        ops += formula.count(sim)\n",
    "    return ops\n",
    "\n",
    "def compute_depth(expr, depth = None):\n",
    "    \"\"\" Computes the depth of the simpy tree representation of the formula\"\"\"\n",
    "    if depth == None:\n",
    "        depth = 0\n",
    "    if expr.args == ():\n",
    "        return depth\n",
    "    else:\n",
    "        depth += 1\n",
    "        depth = max([compute_depth(arg, depth) for arg in expr.args])\n",
    "        return depth\n",
    "    \n",
    "def count_na_ops(expr):\n",
    "    \"\"\" Counts the number of non-arithmetic operations (^,sqrt,sin,cos) in the formula \"\"\"\n",
    "    formula = str(expr).replace('**','^')\n",
    "    ops = 0\n",
    "    for sim in  ['^', 'sin', 'cos']:\n",
    "        ops += formula.count(sim)\n",
    "    return ops\n",
    "\n",
    "def count_na_comp(expr, count=None):\n",
    "    \"\"\" Counts the maximum number of non-arithmetic chained operations in the formula, e.g. for log(sin(cos(x)) \n",
    "    the function returns 3 \"\"\"\n",
    "    if count == None:\n",
    "        count = 0\n",
    "    if (expr.is_Pow and expr.args[1]!=-1) or str(type(expr)) == 'cos' or str(type(expr)) == 'sin':\n",
    "        count += 1\n",
    "        count_args = []\n",
    "        for arg in expr.args:\n",
    "            count_args.append(count_na_comp(arg, count))\n",
    "        count = max(count_args)\n",
    "        return count\n",
    "    else:\n",
    "        if expr.args:\n",
    "            count_args = []\n",
    "            for arg in expr.args:\n",
    "                count_args.append(count_na_comp(arg, count))\n",
    "            count = max(count_args)\n",
    "        return count\n",
    "    \n",
    "def count_nodes(expr, n_nodes = None):\n",
    "    \"\"\" Counts the number of nodes in the simpy tree representation of the formula \"\"\"\n",
    "    if n_nodes is None:\n",
    "        n_nodes = 1\n",
    "    if len(expr.args)>0:\n",
    "        n_nodes += len(expr.args)\n",
    "        # a/x is read as a*(1/x)\n",
    "        if expr.is_Mul and any([arg.is_Pow for arg in expr.args]):\n",
    "            for arg in expr.args:\n",
    "                if arg.is_Pow and arg.args[1] == -1:\n",
    "                    n_nodes -= 2\n",
    "        # -x is read as -1*x\n",
    "        if expr.is_Mul and expr.args[0] == -1:\n",
    "            n_nodes -= 1\n",
    "        for arg in expr.args:\n",
    "            n_nodes = count_nodes(arg, n_nodes)\n",
    "    return n_nodes\n",
    "\n",
    "def count_nodes_by_string(expr):\n",
    "    \"\"\" Counts the number of nodes in the string representation of the formula \"\"\"\n",
    "    # n_nodes = count_ops(expr)\n",
    "    expr = str(expr).replace('**', '^')\n",
    "    n_nodes = len(re.findall(r'( \\+ )|( - )|(\\*)| / |\\^|sin|cos|exp|log', expr))\n",
    "    n_nodes += len(re.findall(r'x(?!p)', expr))\n",
    "    n_nodes += len(re.findall(r'\\d+(\\.\\d+)', expr))\n",
    "    n_nodes += len(re.findall(r'-(?=x)', expr))\n",
    "    return n_nodes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "In the following we perform the features extraction.\n",
    "Please, note that we use the `count_nodes_by_string` function nodes count."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "def extract_features(part):\n",
    "    \"\"\"\n",
    "    Extract the features of each formula and stores them in a new dataframe.\n",
    "    Features extracted:\n",
    "    - formula\n",
    "    - n_vars = number of variables (counts repetitions)\n",
    "    - n_dim = number of dimensions\n",
    "    - n_const = the number of constants in the formula\n",
    "    - n_ops = number of operations\n",
    "    - depth = depth of the tree (in sympy representation)\n",
    "    - na_ops = number of non arithmetic operations\n",
    "    - na_comp = maximum number of comosition of non arithmetic operations \n",
    "    - n_nodes = the number of nodes in a tree representing the formula\n",
    "    \"\"\"\n",
    "    \n",
    "    df = pd.DataFrame(columns = ['exprs','n_vars', 'n_dim','n_const', 'depth', 'na_ops','na_comp', 'n_nodes', \n",
    "                                 'correct','confidence'])\n",
    "    \n",
    "    data = questions[questions.part == part]\n",
    "\n",
    "    for i in range(0,len(data)):\n",
    "        row = data.iloc[i]\n",
    "        expr = get_formula(row)\n",
    "   \n",
    "        \n",
    "        new_row = {}\n",
    "        new_row['exprs'] = expr\n",
    "        new_row['n_vars'] = count_vars(expr)\n",
    "        new_row['n_dim'] = count_dim(expr)\n",
    "        new_row['n_const'] = count_consts(expr)\n",
    "        new_row['n_ops'] = count_ops(expr)\n",
    "        new_row['depth'] = compute_depth(expr)\n",
    "        new_row['na_ops'] = count_na_ops(expr)\n",
    "        new_row['na_comp'] = count_na_comp(expr)\n",
    "        new_row['n_nodes'] = count_nodes_by_string(expr)\n",
    "        \n",
    "        new_row['correct'] = str(row.answer == row.correct)\n",
    "        new_row['confidence'] = row.confidence\n",
    "        \n",
    "        df = df.append(new_row, ignore_index = True)\n",
    "    \n",
    "    return df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "## Simulatability\n",
    "\n",
    "In this section we analyze and report the results about the simulatability questions.\n",
    "We extract the features for these questions and we plot the results of the survey."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>exprs</th>\n",
       "      <th>n_vars</th>\n",
       "      <th>n_dim</th>\n",
       "      <th>n_const</th>\n",
       "      <th>depth</th>\n",
       "      <th>na_ops</th>\n",
       "      <th>na_comp</th>\n",
       "      <th>n_nodes</th>\n",
       "      <th>correct</th>\n",
       "      <th>confidence</th>\n",
       "      <th>n_ops</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>sin(x + 3.14) + 7</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>x_1 + sin(x_3 + 1.57) + cos(x_2 - 1.57) + 7</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-x_1**x_4 - x_2*x_3 - x_4 + 7 + 8/x_2</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>(x**0.5 + 2)**0.5</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "      <td>True</td>\n",
       "      <td>2</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>sin(3.14*x_1)**0.5/cos(x_2 + 1.57)</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>10</td>\n",
       "      <td>False</td>\n",
       "      <td>3</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1331</th>\n",
       "      <td>x_1 + 2*x_2 + 5</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1332</th>\n",
       "      <td>sin(x + 3.14)**0.5</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "      <td>False</td>\n",
       "      <td>3</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1333</th>\n",
       "      <td>(x_1 + x_1**x_2 + sin(3.14*x_1))**0.5</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>12</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1334</th>\n",
       "      <td>5*x + 6</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1335</th>\n",
       "      <td>sin(3.14*x)*cos(3.14*x)</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>5.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1336 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                            exprs n_vars n_dim n_const depth  \\\n",
       "0                               sin(x + 3.14) + 7      1     1       2     3   \n",
       "1     x_1 + sin(x_3 + 1.57) + cos(x_2 - 1.57) + 7      3     3       3     3   \n",
       "2           -x_1**x_4 - x_2*x_3 - x_4 + 7 + 8/x_2      6     4       2     3   \n",
       "3                               (x**0.5 + 2)**0.5      1     1       1     3   \n",
       "4              sin(3.14*x_1)**0.5/cos(x_2 + 1.57)      2     2       2     4   \n",
       "...                                           ...    ...   ...     ...   ...   \n",
       "1331                              x_1 + 2*x_2 + 5      2     2       2     2   \n",
       "1332                           sin(x + 3.14)**0.5      1     1       1     3   \n",
       "1333        (x_1 + x_1**x_2 + sin(3.14*x_1))**0.5      4     2       1     4   \n",
       "1334                                      5*x + 6      1     1       2     2   \n",
       "1335                      sin(3.14*x)*cos(3.14*x)      2     1       2     3   \n",
       "\n",
       "     na_ops na_comp n_nodes correct confidence  n_ops  \n",
       "0         1       1       5    True          3    3.0  \n",
       "1         2       1      12    True          4    7.0  \n",
       "2         1       1      13    True          4    8.0  \n",
       "3         2       2       6    True          2    3.0  \n",
       "4         3       2      10   False          3    6.0  \n",
       "...     ...     ...     ...     ...        ...    ...  \n",
       "1331      0       0       5    True          4    3.0  \n",
       "1332      2       2       6   False          3    3.0  \n",
       "1333      3       2      12    True          4    6.0  \n",
       "1334      0       0       3    True          4    2.0  \n",
       "1335      2       1       9    True          4    5.0  \n",
       "\n",
       "[1336 rows x 11 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sim = extract_features('sim')\n",
    "sim"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "A function to plot correct answer ratios over single variables. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_single_var(data, part):\n",
    "    features = ['n_vars', 'na_ops', 'na_comp', 'depth', 'confidence']\n",
    "    n_feat = len(features)\n",
    "    \n",
    "    plt.figure(figsize = (10,15))\n",
    "    if part == 'sim':\n",
    "        plt.suptitle('Simulatability questions', fontsize = 15, y = -0.01)\n",
    "    elif part == 'dec':\n",
    "        plt.suptitle('Decomposability questions', fontsize = 15, y = -0.01)\n",
    "    for i, label in enumerate(features):\n",
    "        values = sorted(data[label].unique())\n",
    "        df = pd.DataFrame(columns = [label, 'norm_correct', 'one'])\n",
    "        k = 0\n",
    "        for val in values:\n",
    "            tot = len(data[data[label]==val])\n",
    "            correct = len(data.loc[(data[label] == val) & (data['correct']==str(True))])\n",
    "            df.loc[k] = [val, correct/tot, 1]\n",
    "            k +=1\n",
    "\n",
    "        ax = plt.subplot(n_feat, 1, i+1)\n",
    "        sns.set(style=\"whitegrid\")\n",
    "        sns.set_color_codes(\"pastel\")\n",
    "        sns.barplot(x=label, y='one', data=df, label=\"Total\", color=\"b\")\n",
    "        sns.set_color_codes(\"muted\")\n",
    "        sns.barplot(x=label, y='norm_correct', data=df, label=\"Normalized correct\", color=\"b\")\n",
    "        sns.despine(left=True, bottom=True)\n",
    "\n",
    "    plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x1080 with 5 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_single_var(sim, 'sim')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "Note that while most plots are reasonable, we obtain a counterintuitive result for `na_ops=6`. This is a fluke due to only 3 answers being given:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>exprs</th>\n",
       "      <th>n_vars</th>\n",
       "      <th>n_dim</th>\n",
       "      <th>n_const</th>\n",
       "      <th>depth</th>\n",
       "      <th>na_ops</th>\n",
       "      <th>na_comp</th>\n",
       "      <th>n_nodes</th>\n",
       "      <th>correct</th>\n",
       "      <th>confidence</th>\n",
       "      <th>n_ops</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>718</th>\n",
       "      <td>5*6.28**(5*sin(x_2))*x_1*x_3*x_4 + x_2**5 + x_...</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>31</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>829</th>\n",
       "      <td>5*6.28**(5*sin(x_2))*x_1*x_3*x_4 + x_2**5 + x_...</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>31</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1176</th>\n",
       "      <td>4*x_1/x_3 - x_2**0.5*cos(x_4 + 1.57) + sin(x_1...</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>30</td>\n",
       "      <td>True</td>\n",
       "      <td>2</td>\n",
       "      <td>18.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                  exprs n_vars n_dim n_const  \\\n",
       "718   5*6.28**(5*sin(x_2))*x_1*x_3*x_4 + x_2**5 + x_...      9     4       9   \n",
       "829   5*6.28**(5*sin(x_2))*x_1*x_3*x_4 + x_2**5 + x_...      9     4       9   \n",
       "1176  4*x_1/x_3 - x_2**0.5*cos(x_4 + 1.57) + sin(x_1...      7     4       6   \n",
       "\n",
       "     depth na_ops na_comp n_nodes correct confidence  n_ops  \n",
       "718      5      6       2      31    True          3   20.0  \n",
       "829      5      6       2      31    True          3   20.0  \n",
       "1176     5      6       2      30    True          2   18.0  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sim[sim['na_ops']==6]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "## Decomposability\n",
    "\n",
    "Now we calculate the features for the decomposability part"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "dec = extract_features('dec')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# Binning formulas by features\n",
    "\n",
    "We condense the survey answers into a regression dataset.\n",
    "We begin with replacing each question with a set of feature values that represents the formula contained in the question.\n",
    "We obtain multiple identical sets of feature values with different outcomes in terms of correctness and confidence.\n",
    "We merge equal sets of feature values into a single sample, taking the ratio of correct answers and the mean user confidence. We also set the value `interpr` to the product of correctness ratio and mean confidence."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "correct_label_mapping = {'True': 1, 'False':0}\n",
    "\n",
    "def compute_interpr(corr, conf):\n",
    "    # map conf to 0---1\n",
    "    conf_norm = (conf - 1) / (4 - 1)\n",
    "    interpr = np.multiply(corr, conf_norm)\n",
    "    \n",
    "    return interpr\n",
    "\n",
    "def group_by_feature(data, features):\n",
    "    data_copy = data.copy()\n",
    "    data_copy.replace({'correct': correct_label_mapping}, inplace=True)\n",
    "    total = data_copy.groupby(features)[\"exprs\"].count().reset_index()\n",
    "    \n",
    "    nan_entries = np.empty(len(total))\n",
    "    nan_entries[:] = np.nan\n",
    "    \n",
    "    total.at[:,'confidence'] = pd.Series(nan_entries)\n",
    "    total.at[:,'correct'] = pd.Series(nan_entries)\n",
    "    total.at[:,'interpr'] = pd.Series(nan_entries)\n",
    "    \n",
    "    k = 0\n",
    "    for i in range(len(total)):\n",
    "        query = ''\n",
    "        for label in features:\n",
    "            query = query + label + '==' \n",
    "            query = query +  str(total.iloc[i][label]) + \" & \"\n",
    "        query = \"\".join(query.rsplit('&', 1))\n",
    "        result = data_copy.query(query)\n",
    "        \n",
    "        interpr = compute_interpr( result['correct'].to_numpy(), result['confidence'].to_numpy() )\n",
    "        \n",
    "        mean_confidence = result['confidence'].mean()\n",
    "        mean_correct = result['correct'].mean()\n",
    "        total.loc[k, 'confidence'] = np.round(mean_confidence, 2)\n",
    "        total.loc[k, 'correct'] = np.round(mean_correct,2)\n",
    "        total.loc[k, 'interpr'] = np.round(np.mean(interpr),2)\n",
    "        k += 1\n",
    "    \n",
    "    return total"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>n_nodes</th>\n",
       "      <th>n_ops</th>\n",
       "      <th>na_ops</th>\n",
       "      <th>na_comp</th>\n",
       "      <th>confidence</th>\n",
       "      <th>correct</th>\n",
       "      <th>interpr</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3.80</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3.52</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3.55</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3.48</td>\n",
       "      <td>0.86</td>\n",
       "      <td>0.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3.40</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>68</th>\n",
       "      <td>19</td>\n",
       "      <td>11.0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>3.39</td>\n",
       "      <td>0.78</td>\n",
       "      <td>0.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>69</th>\n",
       "      <td>19</td>\n",
       "      <td>12.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>3.33</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>70</th>\n",
       "      <td>20</td>\n",
       "      <td>12.0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>3.21</td>\n",
       "      <td>0.79</td>\n",
       "      <td>0.71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>20</td>\n",
       "      <td>12.0</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2.64</td>\n",
       "      <td>0.45</td>\n",
       "      <td>0.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>21</td>\n",
       "      <td>13.0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2.43</td>\n",
       "      <td>0.57</td>\n",
       "      <td>0.31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>73 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    n_nodes  n_ops  na_ops  na_comp  confidence  correct  interpr\n",
       "0         2    1.0       0        0        3.80     0.95     0.88\n",
       "1         3    2.0       0        0        3.52     0.80     0.75\n",
       "2         4    2.0       0        0        3.55     0.91     0.85\n",
       "3         4    2.0       1        1        3.48     0.86     0.73\n",
       "4         4    3.0       1        1        3.40     0.89     0.77\n",
       "..      ...    ...     ...      ...         ...      ...      ...\n",
       "68       19   11.0       3        2        3.39     0.78     0.72\n",
       "69       19   12.0       2        1        3.33     0.67     0.53\n",
       "70       20   12.0       4        1        3.21     0.79     0.71\n",
       "71       20   12.0       4        2        2.64     0.45     0.36\n",
       "72       21   13.0       3        1        2.43     0.57     0.31\n",
       "\n",
       "[73 rows x 7 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# features we consider\n",
    "features =  ['n_nodes','n_ops','na_ops','na_comp'] \n",
    "\n",
    "# mering by those features both sim and dec \n",
    "sim_dec_grouped = group_by_feature(pd.concat([sim, dec]), features)\n",
    "\n",
    "# filtering out samples for which too few answers were given \n",
    "sim_dec_grouped_filtered = sim_dec_grouped[sim_dec_grouped['exprs'] >= 10].drop(['exprs'], axis=1).reset_index(drop=True)\n",
    "\n",
    "# show result\n",
    "sim_dec_grouped_filtered"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# prepare data for training\n",
    "X = sim_dec_grouped_filtered.drop(['correct','confidence','interpr'], axis=1).to_numpy()\n",
    "y = sim_dec_grouped_filtered['interpr'].to_numpy()\n",
    "\n",
    "Xmean = np.mean(X, axis=0)\n",
    "Xstd = np.std(X, axis=0)\n",
    "ymean = np.mean(y)\n",
    "ystd = np.std(y)\n",
    "\n",
    "\n",
    "#let's compute weights based on occurrency\n",
    "y_classes = (y*20).astype(int) / 2\n",
    "y_classes = y_classes / 10\n",
    "\n",
    "bins = [.25,.35,.45,.55,.65,.75,.85,.95]\n",
    "\n",
    "freq, classes = np.histogram(y_classes, bins=bins)\n",
    "classes = classes[:-1].copy()\n",
    "freq = freq / np.sum(freq)\n",
    "\n",
    "y_weights = np.ones(len(y))\n",
    "for i in range(len(y)):\n",
    "    idx = (np.abs(y[i] - classes)).argmin()\n",
    "    y_weights[i] = 1 - freq[idx]\n",
    "    \n",
    "\n",
    "# show weighting    \n",
    "hist_labels = (np.array(bins)+0.05)[:-1] \n",
    "fig, ax = plt.subplots( 1, 1, figsize=(6,4) )\n",
    "ax.hist(y_classes, bins=np.array(bins))\n",
    "ax2 = ax.twinx()\n",
    "ax2.scatter(hist_labels, (1-freq), color='red', s=100)\n",
    "ax2.grid(False)\n",
    "ax2.tick_params(axis='y', labelcolor='red')\n",
    "top_y = np.max(freq) * len(y) + 1\n",
    "ax.set_ylim(bottom=0,top=top_y)\n",
    "ax.tick_params(axis='y', labelcolor='blue')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Learning the model\n",
    "\n",
    "Here we train the model for interpretability evaluation.\n",
    "The model is based on linear elastic net. The training and validation is performed with leave-one-out cross-validation. Hyper-parameter tuning is included in| each iteration, by means of grid search with 10-fold cross-validation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "def LearnInterpretabilityModel(n_jobs=1):\n",
    "    \n",
    "    from sklearn.linear_model import SGDRegressor as SGDR\n",
    "    from sklearn.model_selection import cross_validate, LeaveOneOut, GridSearchCV, KFold\n",
    "    from sklearn.preprocessing import scale, minmax_scale, PolynomialFeatures\n",
    "    \n",
    "    Xs = scale(X)\n",
    "    ys = scale(y)\n",
    "    \n",
    "    lr_hyperparams = { \n",
    "                       'alpha' : [0.01, 0.25, 0.5, 0.75, 1.0], 'l1_ratio' : [0.01, 0.25, 0.5, 0.75, 1.0] \n",
    "                     }\n",
    "\n",
    "    estimator = SGDR(penalty='elasticnet', max_iter=1000, tol=1e-3, fit_intercept=False)\n",
    "    hyperparams = lr_hyperparams\n",
    "    \n",
    "    train_mses = []\n",
    "    test_mses = []\n",
    "    training_variances = []\n",
    "    elitist_infos = []\n",
    "    best_hyperparams = []\n",
    "    cval = LeaveOneOut()  # KFold(n_splits=10) #LeaveOneOut() \n",
    "    for split in cval.split(y):\n",
    "        \n",
    "        X_train = Xs[split[0]]\n",
    "        y_train = ys[split[0]]\n",
    "        X_test = Xs[split[1]]\n",
    "        y_test = ys[split[1]]\n",
    "        \n",
    "        sw_train = y_weights[split[0]]\n",
    "        sw_test = y_weights[split[1]]\n",
    "        \n",
    "        w_average = np.average(y_train, weights=sw_train)\n",
    "        w_variance = np.average((y_train - w_average)**2, weights=sw_train)\n",
    "        training_variances.append(w_variance)\n",
    "            \n",
    "        gs = GridSearchCV(estimator, hyperparams, n_jobs=n_jobs, scoring='neg_mean_squared_error', cv=5, refit=True, return_train_score=True, iid=False)\n",
    "        gs_result = gs.fit(X_train, y_train, sample_weight=sw_train)\n",
    "                \n",
    "        train_mse = np.mean(np.square (np.multiply(sw_train, y_train - gs_result.best_estimator_.predict(X_train))) ) \n",
    "        test_mse = np.mean(np.square(np.multiply(sw_train, y_test - gs_result.best_estimator_.predict(X_test) )) )\n",
    "\n",
    "        train_mses.append(train_mse)\n",
    "        test_mses.append(test_mse)\n",
    "        el_info = gs_result.best_estimator_.coef_.tolist()\n",
    "        el_info.append( gs_result.best_estimator_.intercept_[0])\n",
    "        elitist_infos.append( el_info )\n",
    "\n",
    "        best_hyperparams.append( gs_result.best_params_ )\n",
    "        \n",
    "    \n",
    "    return_package = (train_mses, test_mses, training_variances, elitist_infos, best_hyperparams)\n",
    "    return return_package"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we run the learning process and obtain multiple linear models, one per leave-one-out cross-validation.\n",
    "We report the weighted R2 scores and mean squared errors for both training and testing set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 0.075 0.069\n",
      "R^2: 0.506 0.545\n",
      "\n",
      "features \t\t ['n_nodes', 'n_ops', 'na_ops', 'na_comp', 'intercept']\n",
      "coeff.normalized \t [-0.06704887 -0.1065361  -0.23471872 -0.17230369  0.        ]\n",
      "coeff.scaled back \t [-0.00195041 -0.00502375 -0.03351907 -0.04472121  0.79074077]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaQAAADMCAYAAAA8nNe2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3X1YVGX+P/D3yJOpaIBhUvbwo52RGJVBBHkwRSNZVzQjH7DxoWVb0LJWM2njwq8lA4mFGWWYoYUSpiFWUrFbaqXstQqChiKsQAEJITgVDooI9+8Pv863WQUHPcMc8P26rvljztz3fT5zz1y8OU9zFEIIASIiIivrY+0CiIiIAAYSERHJBAOJiIhkgYFERESywEAiIiJZYCAREZEsMJCIiEgWGEhERCQLDCQiIpIFBhIREckCA4mIiGTB1toFSKW9vR0GgwF2dnZQKBTWLoeI6JYlhEBrayv69++PPn3M3+7pNYFkMBhQVlZm7TKIiOh/KZVKODo6mt2+1wSSnZ0dgMsTYG9vb+VqzFNcXAy1Wm3tMno1znH34DxbXk+a44sXL6KsrMz4d9lcvSaQruyms7e3h4ODg5WrMV9PqrWn4hx3D86z5fW0Oe7q4ROLndSQkZGBiRMnYsSIEXjssceQn5/faftDhw7hsccew4gRIzBp0iRkZmZaqjQiIpIhiwTS559/joSEBERHR2P37t3QaDR46qmncPr06Wu2r66uxl//+ldoNBrs3r0bUVFRiI+PR25uriXKIyIiGbJIIG3ZsgUzZszArFmz4O7ujri4ONxxxx0dbvVs374drq6uiIuLg7u7O2bNmoVHH30UmzdvtkR5REQkQ5IfQ7p48SKOHz+OP//5zybLAwMDUVhYeM0+RUVFCAwMNFkWFBSE3bt3o7W1tUsHxhYvXoxff/2164VbQVNTU5fOQKGu4xx3D86z5fWkOR40aBAWL17c5X6SB5Jer0dbWxsGDx5sstzFxQV5eXnX7NPQ0AB/f3+TZYMHD8alS5eg1+vh6upq9vrPnTuHpqamrhfejUpKSlBTUwMhBBQKBe6++254eHhYu6xeS+7fh96C82x5PWWObWxsbqhfrznL7or09HRZn4myZMkS7N27F6+99hr8/Pzw73//GzExMZg+fTpSUlKsXV6vU1BQgNGjR1u7jF6P82x5PWmOW1paUFxc3OV+kh9DcnJygo2NDRoaGkyWNzY24o477rhmn8GDB6OxsdFkWUNDA2xtbeHk5CR1iVa1adMmrFmzBsuWLUPfvn2xbNkyrFmzBps2bbJ2aUREViV5INnb28PT0/Oq3XN5eXnQaDTX7OPl5XXN9mq1ussXVsldS0sLcnJy0KdPH/j4+KBPnz7IyclBS0uLtUsjIrIqi5xl9+STTyI7Oxs7d+5EeXk54uPjUV9fjzlz5gAAVqxYgRUrVhjbz5kzBz///DN0Oh3Ky8uxc+dOZGdnX3ViRE+hVquhUCiu+QCAvXv3QggB4PJvPu3duxcAOuzTU67OJiK6GRY5hjRlyhTo9Xq88847qK+vh1KpxLvvvou77roLAFBbW2vSftiwYXj33XeRmJiIzMxMuLq6IjY2FpMnT7ZEeTfsy2cfhnLIoOu2+zRCBUAl6bordOHXbVP2868IffMrSddLRNRdLHZSwxNPPIEnnnjimq9t3br1qmW+vr7Izs62VDmSMPePvVqtxvHjxyVbr6enp1kHCP+fZGskIup+vB+SBRQXF0MIcc2HQqHAokWLIIRAfn4+hBBYtGgRFApFh31u5GyVW11mZibUajV8fX2hVqv5U1REPUCvO+1b7kJCQvDOO+8AAGbPno3FixfjnXfewSOPPGLlynqPzMxMPPfcc+jfvz+EEDAYDHjuuecAABEREVaujog6ohBXjq73cFfOe1er1bK+DgkAJk+ejH/+85/GLaaQkBD+bp+Ehg0bhkuXLuHDDz9Ev3790NzcjLlz58LW1hbV1dXWLq9X6knXyPRUPWmOb/TvMXfZWUFubi7a29uRn5+P9vZ2hpHEampqkJ6ejuDgYNja2iI4OBjp6emoqamxdmlE1AnusqMe6XonjnS0C7Sj+7OYe+IIEVkOA4lkxdnZGXq9vtvXe/z4cbNuJubk5ISzZ892Q0VEtx4GEsnKh1pvs671spbyhnPWLoGo12IgkazwWi+iWxdPaqAeqbNrvQDAYDCYXOtlMBgAgNd6EckYA4l6HQcHB6SmpposS01Nlf3lAES3Ou6yo17nqaeeQkxMDADAz88PycnJiImJQXR0tJUrI6LOMJCo17lyo8OXXnoJLS0tcHBwQHR0NG+ASCRz3GVHvVJKSgouXLiA/Px8XLhwgWFE1AMwkIiISBYYSEREJAsMJCIikgUGEhERyQIDiYiIZIGBREREssBAIiIiWWAgERGRLDCQiIhIFhhIREQkCwwkIiKSBckD6eLFi1i9ejX8/Pzg5eWF6Oho1NXVddrn8OHDiI6Oxrhx46BSqbBr1y6pyyIiIpmTPJB0Oh1yc3ORnJyMjIwMGAwGREVFoa2trcM+zc3NUCqViI2NRd++faUuiYiIegBJA6mpqQlZWVlYsWIFAgMD4enpiaSkJJSWliIvL6/DfuPHj8eyZcsQGhqKPn24F5GI6FYk6V//4uJitLa2IigoyLhs6NChcHd3R2FhoZSrIiKiXkbSG/Q1NDTAxsYGTk5OJstdXFzQ0NAg5ao6VFxc3C3rkUpBQYG1S+j1OMfdg/Nseb19js0KpHXr1iE1NbXTNunp6ZIUdLPUajUcHBysXYZZCgoKMHr0aGuX0atxjrsH59nyetIct7S03NDGgVmBtGDBAkybNq3TNm5ubigqKkJbWxv0ej2cnZ2NrzU2NsLHx6fLxRER0a3DrEBydnY2CZiOqNVq2NnZ4eDBgwgLCwMA1NXVoby8HBqN5uYqJSKiXk3SY0iOjo4IDw/H2rVr4eLigttvvx2JiYlQqVQICAgwtgsNDYVWq4VWqwUAGAwGVFVVAQDa29tx+vRplJSUYNCgQXBzc5OyRCIikilJAwkAYmNjYWtri6VLl+LChQvw9/dHUlISbGxsjG0qKyuh1+uNz4uLizF//nzj85SUFKSkpGDGjBl49dVXpS6RiIhkSPJAsre3R1xcHOLi4jpsU1paavLcz8/vqmVERHRr4VWoREQkCwwkIiKSBQYSERHJAgOJiIhkgYFERESywEAiIiJZYCAREZEsMJCIiEgWGEhERCQLDCQiIpIFBhIREckCA4mIiGSBgURERLLAQCIiIllgIBERkSwwkIiISBYYSEREJAsMJCIikgUGEhERyQIDiYiIZIGBREREssBAIiIiWWAgERGRLDCQiIhIFiQPpIsXL2L16tXw8/ODl5cXoqOjUVdX12mfjRs3Ijw8HN7e3hg7diyio6NRVlYmdWlERCRjkgeSTqdDbm4ukpOTkZGRAYPBgKioKLS1tXXY59ChQ5g7dy62b9+ODz74ADY2NnjyySfxyy+/SF0eERHJlK2UgzU1NSErKwsJCQkIDAwEACQlJSE4OBh5eXkYN27cNfulpaWZPE9KSoKPjw+OHDmCiRMnSlkiERHJlKRbSMXFxWhtbUVQUJBx2dChQ+Hu7o7CwkKzxzEYDGhvb8fAgQOlLI+IiGRM0i2khoYG2NjYwMnJyWS5i4sLGhoazB5Hp9PBw8MDGo2myzUUFxd3uY81FRQUWLuEXo9z3D04z5bX2+fYrEBat24dUlNTO22Tnp4uSUGJiYkoKChAZmYmbGxsutxfrVbDwcFBklosraCgAKNHj7Z2Gb0a57h7cJ4tryfNcUtLyw1tHJgVSAsWLMC0adM6bePm5oaioiK0tbVBr9fD2dnZ+FpjYyN8fHyuu56EhAR8/vnn+OCDDzBs2DBzSiMiol7CrEBydnY2CZiOqNVq2NnZ4eDBgwgLCwMA1NXVoby8/Lq73+Lj4/HFF18gPT0d7u7u5pRFRES9iKQnNTg6OiI8PBxr165FXl4eTpw4gRdeeAEqlQoBAQHGdqGhodi2bZvx+csvv4xdu3bhtddew8CBA3HmzBmcOXMGBoNByvKIqAvUajUUCoVZDx8fH7PaqdVqa78tkjFJT2oAgNjYWNja2mLp0qW4cOEC/P39kZSUZHI8qLKyEnq93vj8ww8/BAAsXLjQZKxnnnkGS5YskbpEIjJDV44BKBQKCCEsWA3dCiQPJHt7e8TFxSEuLq7DNqWlpZ0+JyKiWw9/y46IiGRB8i0kIpI3Z2dnk13mUlEoFJKN5eTkhLNnz0o2HvUM3EIiusXo9XoIISR95OfnSzqeJQKzp8rMzIRarYavry/UajUyMzOtXZLFcAuJiEimMjMzERsbi7S0NPTr1w/Nzc2IjIwEAERERFi5OulxC4mISKZ0Oh3S0tIQHBwMW1tbBAcHIy0tDTqdztqlWQQDiYhIpkpKSkx+rBoAgoKCUFJSYqWKLIuBREQkUx4eHjhw4IDJsgMHDsDDw8NKFVkWA4mISKZiY2MRGRmJffv24dKlS9i3bx8iIyMRGxtr7dIsgic1EBHJ1JUTF5YsWYKSkhJ4eHhAp9P1yhMaAAYSEZGsRUREICIiokfdfuJGMZCIbjFfLJmECl24pGM6Aaj4UrrxvlgySbrBqMdgIBHdYv6Y8rXkP4Qq9X/v7goFxJuSDUc9BAOJ6BYk5c/8WIKTk5O1SyArYCAR3WIscZsI3n6CpMDTvomISBYYSEREJAsMJCIiKzL3VvG3wm3ieQyJiMiKzL1V/K1wnI5bSEREJAsMJCIikgUGEhERyQIDiYiIZIGBREREssBAIiIiWZA8kC5evIjVq1fDz88PXl5eiI6ORl1dXad9MjIyEBYWBm9vb3h7e2P27NnYv3+/1KUREZGMSR5IOp0Oubm5SE5ORkZGBgwGA6KiotDW1tZhnyFDhmD58uXIzs5GVlYWxo4di6effhonT56UujwiMpO5F2xe+aHW3n7RJlmepIHU1NSErKwsrFixAoGBgfD09ERSUhJKS0uRl5fXYb+HH34Y48ePx7333ov7778fS5cuRf/+/VFUVCRleUTUBcXFxRBCmPXIz883q525F4HSrUnSQCouLkZrayuCgoKMy4YOHQp3d3cUFhaaNUZbWxtycnLQ3NwMjUYjZXlERN3G2dnZ7C1MKbdCzX04OztbeYauJulPBzU0NMDGxuaqe5m4uLigoaGh076lpaWYM2cOWlpa0K9fP7z11ltQqVRdrqGn/QdWUFBg7RJ6Pc5x9+A8m9Lr9cjPz7d2GR3y8fGR3WdmViCtW7cOqampnbZJT0+/qULuv/9+7N69G01NTcjNzUVMTAy2bt0KpVLZpXHUajUcHBxuqpbuIvVdNulqnOPuwXm+NinnxBJzbKnPrKWl5YY2DswKpAULFmDatGmdtnFzc0NRURHa2tqg1+tNNgcbGxvh4+PTaX97e3vce++9AC6Hyvfff4/3338fCQkJ5pRIREQ9nFmB5OzsbNb+RrVaDTs7Oxw8eBBhYWEAgLq6OpSXl3f5eFB7ezsuXrzYpT5ERNRzSXoMydHREeHh4Vi7di1cXFxw++23IzExESqVCgEBAcZ2oaGh0Gq10Gq1AIDXXnsNEyZMwJ133gmDwYA9e/bg0KFD2Lhxo5TlERGRjEl+P6TY2FjY2tpi6dKluHDhAvz9/ZGUlAQbGxtjm8rKSuj1euPzhoYGvPDCCzhz5gwcHR2hUqmwadMmjBs3TuryiIhIpiQPJHt7e8TFxSEuLq7DNqWlpSbPX331VanLICKiHoa/ZUdERLLAQCIiIllgIBERkSwwkIiISBYkP6mBiIiAL5ZMQoUuXLLxnABUfCnZcPhiySTpBpMIA4mIyAL+mPI1hBCSjSf1Twe5KxQQb0o2nCQYSEREFnLlV7rl6L9/BFsOGEhERBYg5dYRcDncpB5TbnhSAxERyQIDiYiIZIGBREREssBAIiIiWWAgERGRLDCQiIhIFhhIREQkCwwkIiKSBQYSERHJAgOJiIhkgYFERESywEAiIiJZYCAREZEsMJCIiEgWGEhERCQLDCQiIitSq9VQKBTXfQAwq51arbbyO7pxkgfSxYsXsXr1avj5+cHLywvR0dGoq6szu//GjRuhUqnwyiuvSF0aEZHsFBcXQwhx3Ud+fr5Z7YqLi639lm6Y5IGk0+mQm5uL5ORkZGRkwGAwICoqCm1tbdftW1RUhI8++ggqlUrqsoiISOYkDaSmpiZkZWVhxYoVCAwMhKenJ5KSklBaWoq8vLzr9l2+fDkSEhIwaNAgKcsiIqIeQNJAKi4uRmtrK4KCgozLhg4dCnd3dxQWFnbaNy4uDpMnT8bYsWOlLImIiHoIWykHa2hogI2NDZycnEyWu7i4oKGhocN+O3bsQFVVFdauXXvTNfS0/acFBQXWLqHX4xx3D86z5fX2OTYrkNatW4fU1NRO26Snp99QARUVFUhOTsaHH34IOzu7Gxrj99RqNRwcHG56nO5QUFCA0aNHW7uMXo1z3D04z5bXk+a4paXlhjYOzAqkBQsWYNq0aZ22cXNzQ1FREdra2qDX6+Hs7Gx8rbGxET4+PtfsV1RUBL1ej6lTpxqXtbW14fDhw9i+fTuKiopgb29vTplERNSDmRVIzs7OJgHTEbVaDTs7Oxw8eBBhYWEAgLq6OpSXl0Oj0Vyzz8MPP3zVefN///vfcd999yEqKkqSrSYiop4qMzMTOp0OJSUl8PDwQGxsLCIiIqxdlkVIegzJ0dER4eHhWLt2LVxcXHD77bcjMTERKpUKAQEBxnahoaHQarXQarUYOHAgBg4caDJOv379MGjQICiVSinLIyLqUTIzMxEbG4u0tDT069cPzc3NiIyMBIBeGUqSX4cUGxuLkJAQLF26FBEREejfvz9SU1NhY2NjbFNZWQm9Xi/1qomIehWdToe0tDQEBwfD1tYWwcHBSEtLg06ns3ZpFiHpFhIA2NvbIy4uDnFxcR22KS0t7XSMrVu3Sl0WEVGPU1JSYnIZDQAEBQWhpKTEShVZFn/LjohIpjw8PHDgwAGTZQcOHICHh4eVKrIsBhIRkUzFxsYiMjIS+/btw6VLl7Bv3z5ERkYiNjbW2qVZhOS77IiISBpXTlxYsmSJ8Sw7nU7XK09oABhIRESyFhERgYiIiB51YeyN4i47IiKShV6zhSSEAHD5fkw9SUtLi7VL6PU4x92D82x5PWWOr/wdvvJ32VwK0dUeMtXU1ISysjJrl0FERP9LqVTC0dHR7Pa9JpDa29thMBhgZ2dnvN0vERF1PyEEWltb0b9/f/TpY/6RoV4TSERE1LPxpAYiIpIFBhIREckCA4mIiGSBgURERLLAQCIiIllgIBERkSwwkIiISBYYSDKXlpaGiRMnWrsMIiKLYyAREZEsMJCIiEgWGEi/M2/ePKxatQrJycnw8/ODv78/1qxZg/b29uv2nThxIjZs2ICVK1fC29sbDz30EN577z2TNqdPn8bTTz8NjUYDjUaDZ555BnV1dSZtNm3ahMDAQGg0GqxYsQLNzc1XrSsrKwtTpkzBiBEjMHnyZLz//vsmNW7fvh2TJ0/GiBEj4Ofnh8jISFy6dOkGZ6X73czn8OuvvyImJgZjxozByJEjsXDhQvznP/8xvr5r1y5oNBrs3bvXOEfz5s1DdXW1sU1tbS0WLVoEX19fjBo1CqGhocjJybHIe+0u15vTTz75BOHh4dBoNPD398ezzz6Ln3/+2ezxDx8+jJkzZ2LEiBEICAhAQkKCyS/vz5s3DytXrkR8fDzGjBmDMWPGXPWZ/uMf/0BYWBhGjhwJX19faLVaNDQ0SDcJErD0PJaXlyM6OhqjR4+GRqPB7NmzUVpaCuDy73W+/fbbGD9+PNRqNcLCwvDVV18Z+9bU1EClUiEnJwdarRYjR47Eo48+ipMnT6KsrAxz5syBl5cXIiIiTL7vKSkpmDp1Knbu3IkJEyZg5MiRWLx4Mc6ePSvRrHWBICOtViu8vb3FG2+8ISoqKkROTo7w8PAQn3322XX7BgcHC19fX7F161bxww8/iPT0dKFUKsWRI0eEEEK0tbWJ6dOni9mzZ4tjx46JY8eOiZkzZ4oZM2aI9vZ2IYQQOTk5wtPTU2RmZoqKigqxYcMGodFoRHBwsHE9H330kQgMDBRffPGFqKqqEl9//bUICAgQW7duFUIIcezYMeHh4SE++eQTUVNTI0pKSsSWLVtEa2urBWbMMm7mc4iOjhaTJ08Whw4dEidPnhRRUVHioYceEufPnxdCCJGVlSUefPBBMWPGDJGfny+OHz8u5s6dK6ZNm2b8HKKiosTChQtFSUmJqKqqEt9884345ptvLPqeLe16c7pz506xf/9+UVVVJY4ePSq0Wq2YO3euWWPX1dWJUaNGibi4OHHq1Cmxd+9eERAQIBITE03W7+XlJV555RVx6tQpkZOTI7y9vcXmzZuFEELU19cLT09PkZaWJqqrq0VpaanYsWOHOHPmjPSTcRMsPY++vr4iOjpaHD16VFRUVIjdu3eLEydOCCGE2LJli9BoNOLTTz8VFRUV4o033hDDhw83vl5dXS2USqV45JFHxP79+8WpU6eEVqsVU6ZMEVqtVvzrX/8SZWVlYsaMGSIqKsq43jfffFN4eXkJrVYrjh8/LvLz88WUKVNM2nQXBtLvaLVaMWvWLJNlCxcuFC+99NJ1+wYHB4ulS5eaLAsJCRFvv/22EEKIAwcOiOHDh4vq6mrj61VVVUKlUomDBw8KIYSYPXu2iI2NNRljwYIFJoE0fvx4kZ2dbdJmy5Yt4o9//KMQQojc3Fzh7e0tmpqarluzXN3o51BZWSmUSqU4dOiQcdlvv/0mvL29xY4dO4QQlwNJqVSK/Px8Y5uamhoxfPhw4+cwdepUkZKSItXbkYWuzumpU6eEUqkUtbW11x07OTlZhISEiLa2NuOyrKws4enpKZqbm43rf+SRR4yhL4QQb7/9thg3bpwQQoji4mKhVCpFTU1Nl99bd7L0PE6YMEG0tLRc8/WgoKCrvpdarVY8//zzQoj/C6TMzEzj63v37hVKpVLk5uYal2VlZQkvLy/j8zfffFMMHz5c/PTTT8Zlhw8fFkqlUlRWVl63bin1mhv0SUWlUpk8d3V1RWNj4w33vbLZW15eDldXV9x9993G14cNGwZXV1ecOnUKAQEBKC8vx+OPP24yhpeXF6qqqgAAZ8+eRW1tLf7nf/4HL7/8srHNpUuXjDfCCggIgJubGyZNmoSgoCAEBQUhJCQEAwYMMHMG5OFGPofy8nL06dMHXl5exmWOjo5QKpU4deqUcVmfPn0wcuRI4/O77rrL5HOYP38+Vq1ahe+++w5jx45FSEgI1Gq1RO/Mejqb0+PHj+Ott97CyZMn8csvvxjbnD59GnfeeWen45aXl2PUqFEmtxkYPXo0Wltb8eOPP2L48OEAgFGjRpncGkaj0WD9+vU4d+4chg8fjoCAAEydOhVBQUHw9/dHaGgonJ2db/p9S81S83jixAl4e3vD3t7+qtfOnTuH+vr6q25h7u3tjW+//bbD+lxcXABcvi/R75c1Nzfj/PnzuO222wAAQ4YMgZubm7HNlc+zvLwc9913X6d1S4mB9F9sbU2nRKFQmH3Xw2v1Nee4h7n3b7oy1ssvvwyNRnPNNgMGDEB2djYOHz6MvLw8bNy4EcnJyfj4448xZMgQs9YjBzfzOVzLf89xZ3M+c+ZMjBs3Dt988w3y8vIwZ84cREVFYcmSJTe8fjnoaE6bm5sRGRmJgIAAJCUlwdnZGXq9Hk888QRaW1tvap3mfrdtbGywefNmFBUV4eDBg/j444+RnJyMbdu2GQNNLqwxj5357zn+fX1XXrvWMnP+NnU3ntTQTdzd3VFfX4+amhrjsurqatTX1+OBBx4wtjl69KhJv98/Hzx4MFxdXVFVVYV77733qscVtra28Pf3x/PPP49PP/0U58+fx/79+y37BmXA3d0d7e3tKCoqMi47d+4cysrK4O7ublzW3t6OY8eOGZ+fPn0a9fX1Jm3uvPNOzJ49G+vXr8ezzz6Ljz76qHvehBVUVFRAr9dj6dKlGDNmDNzd3bt0QPvK9/b3f+AKCgpgZ2eHe+65x7js6NGjJv9UFBUVwdXV1bj1rlAojCf7ZGVlwdXVFZ9//rkE77B73Ow8Pvjggzhy5IjJySBXDBgwAK6urigoKDBZfuTIEZPv7Y36+eefUVtba3x+7NgxtLe3SzJ2VzCQuklAQABUKhWWL1+O77//Ht9//z2WL1+OBx98EGPHjgUAzJ8/H9nZ2dixYwd++OEHbNy48aqAevbZZ/Hee+/h/fffR0VFBcrKyrB7925s3LgRALBv3z588MEHOHHiBH766Sfs2bMHBoOh279Y1nDfffdh0qRJWLlyJfLz81FaWorly5djwIABCAsLM7aztbVFQkICCgsLUVJSgpiYGDzwwAMICAgAAMTHx+Pbb79FdXU1SkpK8N133xn/aeiN3NzcYG9vj4yMDFRXV2P//v1Yv3692f3nzp2L+vp6rFq1CuXl5di/fz9ef/11aLVa4y4hAKivr4dOp0NFRQW+/PJLpKWlYeHChQAuh9OGDRtw7NgxnD59Gl9//TVqa2t71PdWinlsbm7G3/72Nxw7dgw//vgj9uzZg5KSEgBAZGQkNm/ejD179qCyshLr169Hfn4+IiMjb7r2vn37IiYmBiUlJSgsLMSqVaswYcKEbt1dB3CXXbdRKBTYsGED4uPjMX/+fACXQyouLs64CT1lyhRUV1dj3bp1uHDhAiZOnIgnn3wS2dnZxnFmzpyJ2267DWlpaXj99dfRt29fPPDAA9BqtQAuHzP56quvsGHDBpw/fx733HMP4uPj4ePj0/1v2goSExORkJCARYsWoaWlBd7e3njvvffQt29fYxt7e3tER0cjJiYGp0+fhpeXF9566y3j5yCEQHx8PGpra9G/f3/4+/vjxRdftNZbsjhnZ2esWbMGycnJyMjIgEqlwosvvoi//OUvZvUfMmQINm3ahKSkJEyfPh0DBw7E1KlTsWzZMpN2YWFhaG9vx6xZs6BQKPD4448bA8nR0RFHjhzBtm3b8Ntvv2Ho0KFYvHiGlMH4AAABBklEQVQxpk+fLvXbtRgp5nHbtm1ISkrCggULAFw+HvTKK68AuPwPq8FgwNq1a9HY2Ij7778fKSkpkuzSvOuuu/CnP/0J0dHR0Ov1CAwMhE6nu+lxu4q3MKdbyq5du7B69WoUFhZau5Rbyrx58/CHP/wBK1eutHYp9F9SUlKQm5uLPXv2WLsU7rIjIiJ54C47M+Tn5+Opp57q8HX+t909+DlYx8qVK/HZZ59d87WwsDDjLiXqHOfx+rjLzgwXLlzo9Oc/fn+GG1kOPwfraGxsxLlz56752oABA4zXulDnOI/Xx0AiIiJZ4DEkIiKSBQYSERHJAgOJiIhkgYFERESywEAiIiJZ+P+SKudnn38ijAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(42) # for reproducibility\n",
    "result = LearnInterpretabilityModel(n_jobs=1)\n",
    "\n",
    "# print results\n",
    "train_mses = result[0]\n",
    "test_mses = result[1]\n",
    "training_variances = result[2]\n",
    "print('MSE:',np.round(np.mean(train_mses)*ystd, 3), np.round(np.mean(test_mses)*ystd, 3))\n",
    "print('R^2:',np.round(1 - np.mean(train_mses)/np.mean(training_variances), 3), np.round(1 - np.mean(test_mses)/np.mean(training_variances), 3) )\n",
    "   \n",
    "# show mean coefficients learned\n",
    "n_feats = len(result[3][0])\n",
    "coefficients = np.array(result[3]).reshape((-1,n_feats))[:,:n_feats]\n",
    "mean_coefficients = np.mean(coefficients,axis=0)\n",
    "print('\\nfeatures','\\t\\t',sim_dec_grouped_filtered.columns.tolist()[:n_feats-1]+['intercept'])\n",
    "print('coeff.normalized','\\t',mean_coefficients)\n",
    "coefficients_rescaled = coefficients[:,:-1] / Xstd\n",
    "mean_coefficients_rescaled = np.mean(coefficients_rescaled, axis=0)\n",
    "intercept_rescaled = np.sum( -1 * np.multiply(mean_coefficients[:-1], Xmean/Xstd) )\n",
    "print('coeff.scaled back','\\t', np.array((mean_coefficients_rescaled * ystd).tolist() + [ np.round(new_intercept * ystd + ymean, 10)]))\n",
    "\n",
    "# last but not least, the distribution of coefficient values\n",
    "fig, ax = plt.subplots(figsize=(6,3))\n",
    "ax.boxplot(coefficients_rescaled)\n",
    "\n",
    "ax.hlines(0,0,len(features)+1)\n",
    "\n",
    "font_size = 14\n",
    "ax.tick_params(axis='x', labelsize=font_size)\n",
    "ax.tick_params(axis='y', labelsize=font_size)\n",
    "\n",
    "ax.set_xticklabels(features)\n",
    "#ax.grid(color='lightgray')\n",
    "fig.tight_layout()\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
